﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Drawing;
using PdfSharp;
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using System.Data;

using CE.Global;

/// <summary>
/// Summary description for PaymentReceiptPDFOutput
/// </summary>
public class CashInstallmentPDFOutput
{
    private string _carPlate = "";
    public string CarPlate
    {
        get { return _carPlate; }
        set { _carPlate = value; }
    }

    private string _contractNo = "";
    public string ContractNo
    {
        get { return _contractNo; }
        set { _contractNo = value; }
    }

    private string _premium1 = "";
    public string Premium1
    {
        get { return _premium1; }
        set { _premium1 = value; }
    }

    private string _premium2 = "";
    public string Premium2
    {
        get { return _premium2; }
        set { _premium2 = value; }
    }

    private string _premium3 = "";
    public string Premium3
    {
        get { return _premium3; }
        set { _premium3 = value; }
    }

    private string _noOfInstall = "";
    public string NoOfInstall
    {
        get { return _noOfInstall; }
        set { _noOfInstall = value; }
    }

    private string _install1 = "";
    public string Install1
    {
        get { return _install1; }
        set { _install1 = value; }
    }

    private string _install2 = "";
    public string Install2
    {
        get { return _install2; }
        set { _install2 = value; }
    }

    private string _install3 = "";
    public string Install3
    {
        get { return _install3; }
        set { _install3 = value; }
    }

    private string _install4 = "";
    public string Install4
    {
        get { return _install4; }
        set { _install4 = value; }
    }

    private string _installDate1 = "";
    public string InstallDate1
    {
        get { return _installDate1; }
        set { _installDate1 = value; }
    }

    private string _installDate2 = "";
    public string InstallDate2
    {
        get { return _installDate2; }
        set { _installDate2 = value; }
    }

    private string _installDate3 = "";
    public string InstallDate3
    {
        get { return _installDate3; }
        set { _installDate3 = value; }
    }

    private string _installDate4 = "";
    public string InstallDate4
    {
        get { return _installDate4; }
        set { _installDate4 = value; }
    }

    private bool _isSCB;
    public bool IsSCB
    {
        get { return _isSCB; }
        set { _isSCB = value; }
    }

    private bool _isBBL;
    public bool IsBBL
    {
        get { return _isBBL; }
        set { _isBBL = value; }
    }

    private bool _isKBank;
    public bool IsKBank
    {
        get { return _isKBank; }
        set { _isKBank = value; }
    }

    private bool _isKTB;
    public bool IsKTB
    {
        get { return _isKTB; }
        set { _isKTB = value; }
    }

    public CashInstallmentPDFOutput()
    {
        //
        // TODO: Add constructor logic here
        //
    }

    public string GeneratePDF()
    {
        // Create a new PDF document
        PdfDocument document = new PdfDocument();
        // Set font encoding to unicode

        XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.Always);

        document.Info.Title = "Created with PDFsharp";

        // Create an empty page
        PdfPage page = document.AddPage();

        // Get an XGraphics object for drawing
        XGraphics gfx = XGraphics.FromPdfPage(page);

        //XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.Always);

        // Create a font
        XFont fontHeader = new XFont("Cordia New", 16, XFontStyle.Bold, options);
        XFont fontTitle = new XFont("Cordia New", 14, XFontStyle.Bold, options);
        XFont fontTitleUnderline = new XFont("Cordia New", 12, XFontStyle.Bold,options);
        XFont font = new XFont("Cordia New", 12, XFontStyle.Regular, options);
        XFont fontFooter = new XFont("Cordia New", 11, XFontStyle.Bold, options);
        XFont fontBox = new XFont("Angsana NEW", 22, XFontStyle.Bold, options);
        XFont fontAddress = new XFont("Cordia New", 12, XFontStyle.Regular, options);
        XFont fontChkedBox = new XFont("Arial Unicode MS", 12, XFontStyle.Regular, options);
        XColor _xcolor = new XColor();
        _xcolor.R = 0;
        _xcolor.G = 0;
        _xcolor.B = 0;
        System.Drawing.Rectangle _rect = new System.Drawing.Rectangle(40, 60, 535, 685);
        System.Drawing.Rectangle _rect2 = new System.Drawing.Rectangle(40, 745, 535, 65);
        XPen _pen = new XPen(_xcolor);
        // Draw the text
        //gfx.DrawRectangle(_pen, _rect);
        //gfx.DrawString("Hello, World!", font, XBrushes.Black,
        //  new XRect(15, 15, 15, 15),
        //  XStringFormats.TopLeft);

        int curX = 50;
        int curY = 40;
        int lineSpace = 20;
        gfx.DrawRectangle(_pen, _rect);
        gfx.DrawRectangle(_pen, _rect2);

        //gfx.DrawImage(XImage.FromFile(AppDomain.CurrentDomain.BaseDirectory + "/images/logos/gluaygluay.png"), new XRect(curX + 400, 50, 39, 27));
        //gfx.DrawImage(XImage.FromFile(AppDomain.CurrentDomain.BaseDirectory + "/images/public/logo/gluaygluay.png"), new XRect(curX, curY, 83, 73));
        //curY += 20;

        gfx.DrawString("ใบคำขอสินเชื่อ", fontHeader, XBrushes.Black, new XRect(curX + 200, curY, 50, 20), XStringFormat.TopLeft);
        curY += 25;

        gfx.DrawString("ทะเบียนรถยนต์ " + _carPlate, font, XBrushes.Black, new XRect(curX + 220, curY, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString("เลขที่สัญญา " + _contractNo, font, XBrushes.Black, new XRect(curX + 400, curY, 50, 20), XStringFormat.TopLeft);
        curY += lineSpace;

        gfx.DrawString("บัตรประจำตัวประชาชน", font, XBrushes.Black, new XRect(curX, curY+10, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString("", fontBox, XBrushes.Black, new XRect(curX + 80, curY, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString("เกิดวันที่", font, XBrushes.Black, new XRect(curX+305, curY + 10, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString("", fontBox, XBrushes.Black, new XRect(curX + 330, curY, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString("เดือน", font, XBrushes.Black, new XRect(curX + 363, curY + 10, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString("", fontBox, XBrushes.Black, new XRect(curX + 380, curY, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString("พ.ศ.", font, XBrushes.Black, new XRect(curX + 412, curY + 10, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString("", fontBox, XBrushes.Black, new XRect(curX + 425, curY, 50, 20), XStringFormat.TopLeft);
        curY += 25;



        gfx.DrawString("ผู้เอาประกัน ชื่อ(นาย/นาง/นางสาว/อื่นๆ ระบุ……………….) ………………………………….. นามสกุล…………………………………………….", font, XBrushes.Black, new XRect(curX, curY, 50, 20), XStringFormat.TopLeft);
        curY += 30;

        //gfx.DrawString("Silom Soi 9 Silom Road Bangrak", fontFooter, XBrushes.Black, new XRect(curX, curY, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString("ที่อยู่ปัจจุบันเลขที่               หมู่ที่      หมู่บ้าน/อาคาร                                    หมายเลขห้อง                    ซอย               ", fontAddress, XBrushes.Black, new XRect(curX, curY, 50, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("ถนน                  ตำบล/แขวง                             อำเภอ/เขต                      จังหวัด                            รหัสไปษณีย์", fontAddress, XBrushes.Black, new XRect(curX, curY, 50, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("โทรศัพท์ (บ้าน)                        โทรศัพท์ (ที่ทำงาน)                  โทรศัพท์มือถือ", fontAddress, XBrushes.Black, new XRect(curX, curY, 50, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("สถานที่อยู่:    เจ้าของบ้าน   บ้านบิดา-มารดา   บ้านญาติ   บ้านพักสวัสดิการ   เช่า-เอกชน   เช่าการเคหะ   อื่น ๆ", fontAddress, XBrushes.Black, new XRect(curX, curY, 50, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("สถานที่จัดส่งเอกสาร: ที่อยู่ปัจจุบัน   ที่อื่น ๆ (โปรดระบุ)", fontAddress, XBrushes.Black, new XRect(curX, curY, 50, 20), XStringFormat.TopLeft);
        curY += 20;

        gfx.DrawString("บุคคลที่สามารถติดต่อแทนท่านได้กรณีฉุกเฉิน", fontTitle, XBrushes.Black, new XRect(curX, curY, 50, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("ชื่อ-สกุล                                                                         ความสัมพันธ์                                                   โทรศัพท์", fontAddress, XBrushes.Black, new XRect(curX, curY, 50, 20), XStringFormat.TopLeft);
        curY += 25;

        gfx.DrawString("จำนวนเงินในการขอสินเชื่อค่าเบี้ยประกันภัย", fontTitle, XBrushes.Black, new XRect(curX, curY, 50, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("เบี้ยประกันภัยสุทธิ " + _premium1 +" บาท เบี้ยประกันภัยรวมภาษีอากร " + _premium2 + " บาท เบี้ยประกันภัยที่ขอสินเชื่อ " + _premium3 + " บาท", fontAddress, XBrushes.Black, new XRect(curX, curY, 50, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("ขอผ่อนชำระเป็นงวด ทั้งหมด " + _noOfInstall + " งวด วิธีการชำระ   เงินสด   เช็คสั่งจ่าย                              จำนวน          ฉบับ (ระบุรายละเอียด)", fontAddress, XBrushes.Black, new XRect(curX, curY, 50, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("งวดที่ 1", fontAddress, XBrushes.Black, new XRect(curX, curY, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString(_install1, fontTitle, XBrushes.Black, new XRect(curX+40, curY, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString("บาท วันที่  " + _installDate1, fontAddress, XBrushes.Black, new XRect(curX + 100, curY, 50, 20), XStringFormat.TopLeft);
        _isKTB = true;
        if (_isBBL == true)
        {
            gfx.DrawString("ธนาคาร", fontAddress, XBrushes.Black, new XRect(curX + 302, curY, 50, 20), XStringFormat.TopLeft);
            gfx.DrawString("☑", fontChkedBox, XBrushes.Black, new XRect(curX + 335, curY - 2, 50, 20), XStringFormat.TopLeft);
            gfx.DrawString("BBL  Kbank  SCB  KTB", fontAddress, XBrushes.Black, new XRect(curX + 345, curY, 50, 20), XStringFormat.TopLeft);
        }
        else if (_isKBank == true)
        {
            gfx.DrawString("ธนาคาร  BBL  ", fontAddress, XBrushes.Black, new XRect(curX + 302, curY, 50, 20), XStringFormat.TopLeft);
            gfx.DrawString("☑", fontChkedBox, XBrushes.Black, new XRect(curX + 362, curY - 2, 50, 20), XStringFormat.TopLeft);
            gfx.DrawString("Kbank  SCB  KTB", fontAddress, XBrushes.Black, new XRect(curX + 372, curY, 50, 20), XStringFormat.TopLeft);
        }
        else if (_isSCB == true)
        {
            gfx.DrawString("ธนาคาร  BBL  Kbank  ", fontAddress, XBrushes.Black, new XRect(curX + 302, curY, 50, 20), XStringFormat.TopLeft);
            gfx.DrawString("☑", fontChkedBox, XBrushes.Black, new XRect(curX + 398, curY - 2, 50, 20), XStringFormat.TopLeft);
            gfx.DrawString("SCB  KTB", fontAddress, XBrushes.Black, new XRect(curX + 408, curY, 50, 20), XStringFormat.TopLeft);
        }
        else if (_isKTB == true)
        {
            gfx.DrawString("ธนาคาร  BBL  Kbank  SCB  ", fontAddress, XBrushes.Black, new XRect(curX + 302, curY, 50, 20), XStringFormat.TopLeft);
            gfx.DrawString("☑", fontChkedBox, XBrushes.Black, new XRect(curX + 428, curY - 2, 50, 20), XStringFormat.TopLeft);
            gfx.DrawString("KTB", fontAddress, XBrushes.Black, new XRect(curX + 438, curY, 50, 20), XStringFormat.TopLeft);
        }
        else
        {
            gfx.DrawString("ธนาคาร  BBL  Kbank  SCB  KTB", fontAddress, XBrushes.Black, new XRect(curX + 302, curY, 50, 20), XStringFormat.TopLeft);
        }
        curY += lineSpace;
        gfx.DrawString("งวดที่ 2" , fontAddress, XBrushes.Black, new XRect(curX, curY, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString(_install2 , fontTitle, XBrushes.Black, new XRect(curX + 40, curY, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString("บาท วันที่  " , fontAddress, XBrushes.Black, new XRect(curX + 100, curY, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString(_installDate2 , fontTitle, XBrushes.Black, new XRect(curX + 150, curY, 50, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("งวดที่ 3", fontAddress, XBrushes.Black, new XRect(curX, curY, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString(_install3, fontTitle, XBrushes.Black, new XRect(curX + 40, curY, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString("บาท วันที่  " + _installDate3, fontAddress, XBrushes.Black, new XRect(curX + 100, curY, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString(_installDate3, fontTitle, XBrushes.Black, new XRect(curX + 150, curY, 50, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("งวดที่ 4", fontAddress, XBrushes.Black, new XRect(curX, curY, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString(_install4, fontTitle, XBrushes.Black, new XRect(curX + 40, curY, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString("บาท วันที่  " + _installDate4, fontAddress, XBrushes.Black, new XRect(curX + 100, curY, 50, 20), XStringFormat.TopLeft);
        gfx.DrawString(_installDate4, fontTitle, XBrushes.Black, new XRect(curX + 150, curY, 50, 20), XStringFormat.TopLeft);
        curY += 25;


        gfx.DrawString("                        ข้าพเจ้า (ซึ่งตอไปนี้จะเรียกว่า “ผู้ขอสินเชื่อ”) มีความประสงค์จะขอสินเชื่อจาก บริษัท คอมแพร์เอ็กซเพรส นายหน้าประกันภัย (ประเทศไทย) ", font, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("จำกัด (ซึ่งต่อไปนี้จะเรียกว่า “ผู้ให้สินเชื่อ”) เพื่อนำไปชำระค่าเบี้ยประกันภัยตามรายละเอียดที่ระบุไว้ข้างต้น  โดยผู้ขอสินเชื่อตกลงปฏิบัติตามเงื่อนไขและ", font, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("ข้อกำหนดการใช้สินเชื่อค่าเบี้ยประกันภัยที่ระบุไว้ตามสัญญานี้ รวมถึงเอกสารแนบท้ายทุกประการ   หากผู้ขอสินเชื่อไม่ปฏิบัติตามหรือประพฤติผิดเงื่อนไขหรือ", font, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("ข้อกำหนดต่าง ๆ ผู้ขอสินเชื่อตกลงยินยอมให้สิทธิเต็มที่ทุกประการแก่ผู้ให้สินเชื่อ รวมถึงบุคคลอื่นใดที่เกี่ยวข้องหรือรับมอบอำนาจจากผู้ให้สินเชื่อในอันที่จะ", font, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("ยกเลิก หรือถอนกรมธรรม์ของผู้ขอสินเชื่อทันที โดยผู้ขอสินเชื่อยินยอมสละข้อต่อสู้ทั้งหมดที่ผู้ขอสินเชื่อพึงมี  และจะไม่เรียกร้องหรือเอาความแต่อย่างใดกับผู้ให้", font, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("สินเชื่อรวมถึงบุคคลอื่นด้วย เพื่อเป็นหลักฐานแห่งการนี้ ผู้ขอสินเชื่อจึงได้ลงนามไว้เป็นสำคัญ", font, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("ลายมือชื่อผู้สมัคร / ผู้ขอสินเชื่อ                                                                                                        วันที่              /         /      ", font, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("ลายมือชื่อสมาชิกผู้รับผิดชอบ                                                                                                          วันที่              /         /      ", font, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("หมายเหตุ", fontTitleUnderline, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("- หากผู้เอาประกันหรือผู้ขอสินเชื่อผิดนัดชำระจากวันที่กำหนด บริษัทฯ ขอสงวนสิทธิ์ในการเรียกเก็บค่าปรับล่าช้า 200 บาท / งวด / ครั้ง", font, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("- หากผู้เอาประกันหรือผู้ขอสินเชื่อผิดนัดชำระ เกิน 5 วัน นับจากวันที่กำหนด หรือชำระเงินสินเชื่อไม่ตรงตามเงื่อนไขการชำระเงินไม่ว่าด้วยเหตุผลใดๆ ก็ตาม ", font, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("บริษัทฯ ขอสงวนสิทธิ์ในการยกเลิกกรมธรรม์โดยมิต้องแจ้งให้ผู้เอาประกันทราบ และผู้ให้สินเชื่อมีสิทธิ์นำกรมธรรม์ประกันภัยในสัญญาให้สินเชื่อฉบับนี้ยกเลิก ทั้งนี้", font, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("ผู้ขอสินเชื่อยินยอมให้ผู้ให้สินเชื่อริบเงินทั้งหมดที่ผู้ขอสินเชื่อได้ชำระให้กับผู้ให้สินเชื่อไปแล้วทั้งหมดหรือนำเงินคืนจากกรมธรรม์มาชำระหนี้เงินสินเชื่อได้ อนึ่ง หาก", font, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("ผู้ขอสินเชื่อ / ผู้เอาประกันภัยร้องขอเพื่อให้กรมธรรม์ประกันภัยยังคงมีผลคุ้มครองต่อไป และผู้ให้สินเชื่อเห็นสมควรที่จะผ่อนผันให้กับผู้ขอสินเชื่อ ผู้ขอสินเชื่อ", font, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("ยินยอมที่จะ", font, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.TopLeft);
        gfx.DrawString("จ่ายค่าปรับล่าช้าเป็นจำนวนเงิน 500 บาทต่อครั้ง", fontTitleUnderline, XBrushes.Black, new XRect(curX+39, curY, 500, 20), XStringFormat.TopLeft);
        gfx.DrawString("เพื่อเป็นประกันความเสียหายให้กับผู้ให้สินเชื่อ ทั้งนี้ อัตราค่าปรับกรณีล่าช้าผู้ให้สินเชื่ออาจ", font, XBrushes.Black, new XRect(curX+210, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("พิจารณาเปลี่ยนแปลงได้ตามที่เห็นสมควรโดยมิต้องแจ้งล่วงหน้า", font, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;

        gfx.DrawString("ชื่อบัญชีบริษัท คอมแพร์เอ็กซ์เพรส นายหน้าประกันภัย ประเทศไทย จำกัด (ประเภทบัญชีออมทัพย์)", fontTitle, XBrushes.Black, new XRect(curX, curY, 500, 20), XStringFormat.Center);
        curY += lineSpace;
        gfx.DrawString("1) ธนาคารกรุงเทพ        สาขาสนญ.สีลม    101-8-57590-0      2) ธนาคารกสิกรไทย สาขาสำนักสีลม   789-2-25470-7", fontTitle, XBrushes.Black, new XRect(curX+20, curY, 500, 20), XStringFormat.TopLeft);
        curY += lineSpace;
        gfx.DrawString("3) ธนาคารไทยพาณิชย์ สาขาปาโซ่ทาวเวอร์ 245-2-06286-2      4) ธนาคารกรุงไทย    สาขาสีลม          022-0-15766-9", fontTitle, XBrushes.Black, new XRect(curX+20, curY, 500, 20), XStringFormat.TopLeft);
      
        string _filePath = GetFilePath();
        string filename = _filePath + "CashInstallment_" + _contractNo + "_" + General.GetUTCDateTime().ToString("_ddMMMyyyy_hhmmss_tt") + ".pdf";
        //document.Save(filename);
        // ...and start a viewer.
        //Response.Redirect(filename);
        System.IO.MemoryStream stream = new System.IO.MemoryStream();
        document.Save(filename);
        stream.Close();
        document.Close();
        return filename;
    }

    private string GetFilePath()
    {
        string _filePath = CE.Configuration.MyConfigurationManager.GetAppSettingValue("TH.NonGGFileOutputPath").ToString();
        _filePath += "pdfoutput\\carinsurance\\";
        CE.InputOut.MyIO _myIO = new CE.InputOut.MyIO();

        string _curYear = General.GetUTCDateTime().ToString("yyyy");
        if (!_myIO.CheckDirectory(_filePath + _curYear))
        {
            if (_myIO.CreateDirectory(_filePath, _curYear))
            {
                _filePath += _curYear + "\\";
            }
        }
        else
        {
            _filePath += _curYear + "\\";
        }

        string _curMonth = General.GetUTCDateTime().ToString("MMMM");
        if (!_myIO.CheckDirectory(_filePath + _curMonth))
        {
            if (_myIO.CreateDirectory(_filePath, _curMonth))
            {
                _filePath += _curMonth + "\\";
            }
        }
        else
        {
            _filePath += _curMonth + "\\";
        }

        string _todaydate = General.GetUTCDateTime().ToString("ddMMMMyyyy");
        if (!_myIO.CheckDirectory(_filePath + _todaydate))
        {
            if (_myIO.CreateDirectory(_filePath, _todaydate))
            {
                _filePath += _todaydate + "\\";
            }
        }
        else
        {
            _filePath += _todaydate + "\\";
        }

        string _payments = "Payments_" + _todaydate;
        if (!_myIO.CheckDirectory(_filePath + _payments))
        {
            if (_myIO.CreateDirectory(_filePath, _payments))
            {
                _filePath += _payments + "\\";
            }
        }
        else
        {
            _filePath += _payments + "\\";
        }

        return _filePath;
    }
}
